package part2.thread;

/**
 * Thread:线程
 *
 * 多线程
 *
 * 线程:线性的执行流程,指的是程序中一个单一的顺序执行流程
 * 多线程:多个顺序执行流程"同时"执行
 *
 * 第一种创建线程的方式:
 * 1:定义一个类并继承Thread
 * 2:重写run方法
 *
 */
public class ThreadDemo1 {
    public static void main(String[] args) {

        Thread myThread1 = new MyThread1();
        Thread myThread2 = new MyThread2();
        myThread1.start();
        myThread2.start();
    }
}

/**
 *  这种创建方式的优点:
 *  结构简单,适合匿名内部类方式创建
 *
 *  缺点:
 *  1:由于java是单继承的,这导致如果我们继承了Thread就无法再继承其它类去复用方法了.
 *  2:重写run方法,将线程要执行的任务定义在线程中,这导致线程与任务是紧耦合的
 */
class MyThread1 extends Thread{ //第一步继承thread
    public void run(){ //第二步重写run方法，run方法中是线程要执行的代码
        for (int i = 0; i < 100; i++) {
            System.out.println("你是谁啊");
        }
    }
}

class MyThread2 extends Thread{
    public void run(){
        for (int i = 0; i < 1000; i++) {
            System.out.println("开门，查水表的");
        }
    }
}